#ifndef INC_UMLBOX_H
#define INC_UMLBOX_H

#include "UMLObject.h"

class DiagramVisitor;

class UMLBox : public UMLObject
{
	public:
		UMLBox(const QString& text = QString());

		UMLBox& operator=(const UMLObject&);

		UMLBox* clone() const;

		void accept(DiagramVisitor&);

		/*** ACCESSORS ***/

		QPoint position() const;

		/**
		 * Note that this may be a complex operation for some objects.
		 */
		void setPosition(const QPoint&);

		QRect rect() const;
		void setSize(const QSize&);

		/**
		 * Sets the size of the box based on the provided bottom-right corner.
		 */
		void setEnd(const QPoint&);

	private:
		QRect _rect;
};

#endif // INC_UMLBOX_H

